<?php

// $Id: mainmenu.php,v 1.13 2008/01/13 00:52:56 roflo1 Exp $

	session_start();


	/* load settings */

	if (!isset($_CONFIG))

		require 'config.php'; // archivo donde se declaran y asignan valores a las variables que utilizaremos para establecer conexión con nuestro servidor.
							  //... igualmente se declaran variables  para cada una de nuestras tablas.


	 /*load external functions for setting up new game */

/* en maquinaria_mainmenu.php 
	require 'chessutils.php'; // contiene funciones que controlan movimientos de las piezas.

	require 'chessconstants.php'; //define y asigna varalores a unas constantes que hacen referencia a el nombre de las piezas y sus posiciones en el tablero.

	require 'newgame.php'; // coloca todas las piezas del ajedrez en su posición inicial del tablero. (blancas y negras).

	require 'chessdb.php'; // funciones para leer y/o guardar/cambiar datos de nuestras tablas. Datos relacionados con nuestras partidas, posiciones de las piezas ...
*/ 
 //todas:
        require 'lang.php'; // para definir el lenguaje y la hora local de España





	/* allow WebChess to be run on PHP systems < 4.1.0, using old http vars */
//todas
	fixOldPHPVersions(); // esta función se encuentra en chessutils.php, Sirve para comprobar la versión de php que se utiliza en el servidor.
						// ..., si fuese una versión que no soportase el formato de variables del sistema  que se utiliza en este programa, haría la 
						// ....... correspondiente transformación de formato.



	/* if this page is accessed directly (ie: without going through login), */

	/* player is logged off by default */

	if (!isset($_SESSION['playerID'])) // por si no estuviese abierta la sesión para el jugador 'playerID'

		$_SESSION['playerID'] = -1;



	/* connect to database */
//todas:
	require 'connectdb.php'; // establece conexión con la base de datos. Contempla el caso de que no hallamos declarado las varibles que se utilizan
							// ... en la función de conexión. Si fuese así, incluiría la declaración de esas variables, incluyendo  'config.php'



	/* cleanup dead games */

	/* determine threshold for oldest game permitted */
//todas
	$targetDate = date("Y-m-d", mktime(0,0,0, date('m'), date('d') - $CFG_EXPIREGAME, date('Y'))); // establece el límete de fecha para terminar una partida.



	/* find out which games are older */

// desde la 69 a la 104 solo en maquinaria_mainmenu.php
	$tmpQuery = "SELECT gameID FROM " . $CFG_TABLE[games] . " WHERE lastMove < '".$targetDate."'"; // query para hallar todos los ID de los juegos que tienen como último movimiento una fecha inferior a la establecida como límite.

	$tmpOldGames = mysql_query($tmpQuery); // mediante esta variable vamos a acceder a todos los registros de la anterior consulta


	/* for each older game... */
	/* Este while lo utilizaremos para borrar los registros de las diferentes tablas que tengan relación con los juegos que hayan expirado */
	while($tmpOldGame = mysql_fetch_array($tmpOldGames, MYSQL_ASSOC)) //va metiendo en la variable $tmOldGame cada uno de los índices asociativos de la consulta anterior '$tmOldGames

	{

		/* ... clear the history... */

		mysql_query("DELETE FROM " . $CFG_TABLE[history] . " WHERE gameID = ".$tmpOldGame['gameID']); //borra todos los registros de la tabla history,  quet tengan como 'gameID' el mismo que que figure en el registro que acaba de leer este While



		/* ... and the board... */

		mysql_query("DELETE FROM " . $CFG_TABLE[pieces] . " WHERE gameID = ".$tmpOldGame['gameID']);//borra todos los registros de la tabla pieces,  quet tengan como 'gameID' el mismo que que figure en el registro que acaba de leer este While



		/* ... and the messages... */

		mysql_query("DELETE FROM " . $CFG_TABLE[messages] . " WHERE gameID = ".$tmpOldGame['gameID']); //borra todos los registros de la tabla messages,  quet tengan como 'gameID' el mismo que que figure en el registro que acaba de leer este While



		/* ... and finally the game itself from the database */

		mysql_query("DELETE FROM " . $CFG_TABLE[games] . " WHERE gameID = ".$tmpOldGame['gameID']); //borra todos los registros de la tabla games,  quet tengan como 'gameID' el mismo que que figure en el registro que acaba de leer este While

	}



	$tmpNewUser = false; //inicializamos esta variable a false

	$errMsg = "";

	switch($_POST['ToDo']) //Todo corresponde al valor de un input oculto que figura en los formularios, tanto en el formulario de index.php, como el formulario de newuser.php.
		                   // ...su valor nos indicará desde que formulario ha sido llamado.
	{

		case 'NewUser': // en el caso de que proceda del formulario para un nuevo usuario.

			/* create new player */

			
			/* sanity check: empty nick */

			if ($_POST['txtNick'] == "") // ?? esta opción ya ha sido descartada en la función  'validateForm() que se encuentra en newuser.php

				die("ERROR: nick o nombre de usuario invalido!"); // muestra un error en el caso que no haya introducido nombre algunao en el campo Nick



			/*check for existing user with same nick */
			
			/*comprobación por si existiera un nick igual al del nuevo jugador */

			$tmpQuery = "SELECT playerID FROM " . $CFG_TABLE[players] . " WHERE nick = '".$_POST['txtNick']."'"; //con esta select comprobamos que no exista ya un nick en nuestra tabla igual al nuevo jugador que se pretende registrar.

			$existingUsers=mysql_query($tmpQuery);

			if ((mysql_num_rows($existingUsers))!=0) // si se cumple este if significaría que ya existe un nick igual al introducido en el formulario newuser.php
			{
				$tmpNewUser = 1; // esta variable es utilizada en el caso de que desde aquí tenga que ser enviado a newuser.php
								//... Si comprobará si la apertura de archivo newuser.php, es ordenada desde aquí, es decir la variable StmpNewUser, contiene un valor superior a 0
								//....... significaría que ha sido enviado debido a que ya existe un usuario con el nick introducido.
					
				require 'newuser.php'; // vuelve a llamar al archivo que contiene el formulario de registro de un nuevo jugador   //!!! con esta comprobación queda claro que se toma como campo único el nick del usuario. Los demás, como el email, de esta manera si se podrán repetir
				die();
			}
			
			/* comprobación por si existira un email igual al introducido por el nuevo jugador*/

			$tmpQuery = "SELECT playerID FROM " . $CFG_TABLE[preferences] . " WHERE value = '".$_POST['txtEmailNotification']."'"; //con esta select comprobamos que no exista ya un email en nuestra tabla igual al nuevo jugador que se pretende registrar.

			$exiteEmail=mysql_query($tmpQuery);

			if ((mysql_num_rows($exiteEmail))!=0) // si se cumple este if significaría que ya existe un nick igual al introducido en el formulario newuser.php
			{
				$tmpNewUser = 2; // esta variable es utilizada en el caso de que desde aquí tenga que ser enviado a newuser.php
								//... Si comprobará si la apertura de archivo newuser.php, es ordenada desde aquí, es decir la variable StmpexitEmail, contiene un valor superior a 0
								//....... significaría que ha sido enviado debido a que ya existe un usuario con el email introducido.
					
				require 'newuser.php'; // vuelve a llamar al archivo que contiene el formulario de registro de un nuevo jugador   //!!! con esta comprobación queda claro que se toma como también como campo único el email del usuario. 
				die(); 
			}
			
			// do-while para hallar un número aleatorio único en nuestra base:
			// .. con este bucle anidado, se evita tener que volver a ejecutar la query cada vez que encuentre en nuestra base
			// ....	un número aleatorio igual a alguno de los que ya tengamos asignados en nuestra base.
            $unico=0;
			$paso=0;
			do{
				srand(time());
				$aleatorio=rand(1,1000000); // creamos un número aleatorio
				
				$tmpQuery = "SELECT aleatorio from players";
				$todos_aleatorios = mysql_query($tmpQuery,$dbh);
			
	            while($v=mysql_fetch_array($todos_aleatorios)) //convierte a $v en un puntero que apunta al primer registro de la consulta anterior
				{					
					if(($v['aleatorio'])==$aleatorio)//
					{$paso=1;
					 exit();
					}
				}				
				if($paso!=1){$unico=1;} //significaría que ya hemos encontrado un número aleatorio único en nuestra base.
			}while($unico==0);

			$tmpQuery = "INSERT INTO " . $CFG_TABLE[players] . " (password, firstName, lastName, nick, aleatorio) VALUES ('".$_POST['pwdPassword']."', '".$_POST['txtFirstName']."', '".$_POST['txtLastName']."', '".$_POST['txtNick']."', '".$aleatorio."')";

			mysql_query($tmpQuery); // query que inserta los datos del nuevo jugador, una vez pasados todas las validaciones anteriores.

 
 
			/* get ID of new player */
			
			   		
			$_SESSION['playerID'] = mysql_insert_id(); //una vez registrado el nuevo usuario, se inicia automáticamente una sesión con su 'playerID'
            
			

			// set History format preference 

			$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'history', '".$_POST['rdoHistory']."')";

			mysql_query($tmpQuery); // realiza un query que inserta los datos correspondientes al nuevo usuario en la tabla preferences



			// set History layout preference 

			$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'historylayout', '".$_POST['rdoHistorylayout']."')";

			mysql_query($tmpQuery);



			// set Theme preference 
			//inserta las preferencias elegidas por el nuevo usuario:
			$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'theme', '".$_POST['rdoTheme']."')";

			mysql_query($tmpQuery); // realiza la inserción de las preferencias anteriores
				
			// asignación de valores a las variables de las que nos servimos para enviar el mensaje al nuevo  jugador Mensaje que se ha de enviar para que el  jugador active su cuenta. 			
			$cabecera=("From: Pedroyrosa.es < pedroyrosa@gmail.com >");
			$asunto=("Confirmacion email para acceso a Pedroyrosa.es ");
			$de=$_POST['txtNick'];
			$email=$_POST['txtEmailNotification'];
			$mensaje=("Por favor confirme su email haciendo click sobre el siguiente enlace: "); 
			$mensaje.=("http://www.ciclodai.com/roberto_sanchez/ajedrez/validar_email.php");
			$mensaje.=("?aleatorio=$aleatorio");
			
		    mail($email,$asunto,$mensaje,$cabecera); // enviamos el mensaje al nuevo jugador para que pueda activar su cuenta.
			
			echo "<script>alert(' Gracias por registrarse. En Breve recibirá un correo que deberá de confirmar para poder acceder a nuestra página.'); window.location.replace('index.php');</script>\n";
			exit();



			// set auto-reload preference 
			/* Guardamos en la tabla preferences los valores correspondientes al nuevo jugador, como el Email */

			if (is_numeric($_POST['txtReload']))

			{

				if (intval($_POST['txtReload']) >= $CFG_MINAUTORELOAD)

					//$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'autoreload', ".$_POST['txtReload'].")";

					$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'autoreload', ".'60'.")";

//pedro para fijar recaga a 60 seg;

				else

					//$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'autoreload', ".$CFG_MINAUTORELOAD.")";

					$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'autoreload', ".'60'.")";



				mysql_query($tmpQuery); 

			}
			
			
			
			 //set email notification preference  

			if ($CFG_USEEMAILNOTIFICATION)

			{

				$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", 'emailnotification', '".$_POST['txtEmailNotification']."')";

				mysql_query($tmpQuery); // en esta query insertamos el email de un nuevo cliente, dentro de la tabla preferences, en el campo value.

			}

			  //no break, login user 

   
		 /* Cuando inicia sesión un jugador ya registrado en nuestra base */
		case 'Login':

			/* check for a player with supplied nick and password */				
			
			/* busca un registro dentro de la tabla players, cuyo nick y password coincidan con los introducidos por el jugador */
			$tmpQuery = "SELECT * FROM " . $CFG_TABLE[players] . " WHERE nick = '".$_POST['txtNick']."' AND password = '".$_POST['pwdPassword']."'";

			$tmpPlayers = mysql_query($tmpQuery);

			$tmpPlayer = mysql_fetch_array($tmpPlayers, MYSQL_ASSOC);



			/* if such a player exists, log him in... otherwise die */

			if ($tmpPlayer) // si la clave y el usuario corresponden en la base
			{ if ($tmpPlayer['confirmado']==0) // para comprobar si ya ha confirmado el email, sifuese igual a cero, tendría que confirmarlo para poder entrar.
				{ echo "<script>alert('Para poder acceder ha de confirmar primero su email, mediante el mensjae que le hemos enviado.'); window.location.replace('index.php');</script>\n";
				  exit();
				}else
				{ /* si ya estuviese confirmado,confirmado==1, crearemos las variables de sesión correspondientes a este jugador: */

					$_SESSION['playerID'] = $tmpPlayer['playerID'];

					$_SESSION['lastInputTime'] = time();

					$_SESSION['playerName'] = $tmpPlayer['firstName']." ".$tmpPlayer['lastName'];

					$_SESSION['firstName'] = $tmpPlayer['firstName'];

					$_SESSION['lastName'] = $tmpPlayer['lastName'];

					$_SESSION['nick'] = $tmpPlayer['nick'];
				
				}

			}else { /* else para contemplar que no haya introducido el usuario y/o clave correctos */
					echo "<script>alert(' Nick o Password (usuario o clave) incorrectos.'); window.location.replace('index.php');</script>\n";

					exit();
				}



			/* load user preferences */
			
			/* leemos las preferencias que ya existan del jugador que acaba de iniciar la sesión: */

			$tmpQuery = "SELECT * FROM " . $CFG_TABLE[preferences] . " WHERE playerID = ".$_SESSION['playerID'];

			$tmpPreferences = mysql_query($tmpQuery);



			$isPreferenceFound['history'] = false;

			$isPreferenceFound['historylayout'] = false;

			$isPreferenceFound['theme'] = false;

			$isPreferenceFound['autoreload'] = false;

			$isPreferenceFound['emailnotification'] = false;


			while($tmpPreference = mysql_fetch_array($tmpPreferences, MYSQL_ASSOC))

			{

				switch($tmpPreference['preference'])

				{

					case 'history':

					case 'historylayout':

					case 'theme':

						/* setup SESSION var of name pref_PREF, like pref_history */

						$_SESSION['pref_'.$tmpPreference['preference']] = $tmpPreference['value'];

						break;



					case 'emailnotification':

						if ($CFG_USEEMAILNOTIFICATION)

							$_SESSION['pref_emailnotification'] = $tmpPreference['value'];

						break;



					case 'autoreload':

						if (is_numeric($tmpPreference['value']))

						{

							if (intval($tmpPreference['value']) >= $CFG_MINAUTORELOAD)

								$_SESSION['pref_autoreload'] = intval($tmpPreference['value']);

							else

								$_SESSION['pref_autoreload'] = $CFG_MINAUTORELOAD;

						}

						else

							$_SESSION['pref_autoreload'] = $CFG_MINAUTORELOAD;

						break;

				}



				$isPreferenceFound[$tmpPreference['preference']] = true;

			} /* Fin de ******* leemos las preferencias que ya existan del jugador que acaba de iniciar la sesión: ******* */



			/* look for missing preference and fix */

			foreach (array_keys($isPreferenceFound, false) as $missingPref)

			{

				$defaultValue = "";

				switch($missingPref)

				{

					case 'history':

						$defaultValue = "pgn";

						break;

					case 'historylayout':

						$defaultValue = "columns";

						break;

					case 'theme':

						$defaultValue = "beholder";

						break;

					case 'autoreload':

						$defaultValue = $CFG_MINAUTORELOAD;

						break;

					case 'emailnotification':

						$defaultValue = "";

						break;

				}

				$tmpQuery = "INSERT INTO " . $CFG_TABLE[preferences] . " (playerID, preference, value) VALUES (".$_SESSION['playerID'].", '".$missingPref."', '".$defaultValue."')";

				mysql_query($tmpQuery);



				/* setup SESSION var of name pref_PREF, like pref_history */

				if ($CFG_USEEMAILNOTIFICATION || ($missingPref != 'emailnotification'))

					$_SESSION['pref_'.$missingPref] =  $defaultValue;

			}



			break;


//todas
		case 'Logout': // para contemplar el caso de que quiera desconectarse

			 session_destroy(); // comprobar si funciona
			$_SESSION['playerID'] = -1;

			header('Location: index.php');

			exit();


  //contemplar en mandar_desafio.php
		case 'InvitePlayer': // en el caso de que proceda de 'mandar_desafio.php'

			/* prevent multiple pending requests between two players with the same originator */
			/* la siguiente query es para impedir que se llegue a duplicar la misma solicitud  de Desafio desde el mismo jugador hacia el mismo oponente */
			/* ... Tal y como está construída esta query, permitiría enviar otro desafio, cambiando simplemente el color de figuras elegidas */

			$tmpQuery = "SELECT gameID FROM " . $CFG_TABLE[games] . " WHERE gameMessage = 'playerInvited'";

			$tmpQuery .= " AND ((messageFrom = 'white' AND whitePlayer = ".$_SESSION['playerID']." AND blackPlayer = ".$_POST['opponent'].")";

			$tmpQuery .= " OR (messageFrom = 'black' AND whitePlayer = ".$_POST['opponent']." AND blackPlayer = ".$_SESSION['playerID']."))";

			$tmpExistingRequests = mysql_query($tmpQuery);



			if (mysql_num_rows($tmpExistingRequests) == 0)

			{

				if (!minimum_version("4.2.0"))

					init_srand(); // función que se encuentra en chessutils.php



				if ($_POST['color'] == 'random')

					$tmpColor = (mt_rand(0,1) == 1) ? "white" : "black";

				else

					$tmpColor = $_POST['color'];



				$tmpQuery = "INSERT INTO " . $CFG_TABLE[games] . " (whitePlayer, blackPlayer, gameMessage, messageFrom, dateCreated, lastMove) VALUES (";

				if ($tmpColor == 'white')

					$tmpQuery .= $_SESSION['playerID'].", ".$_POST['opponent'];

				else

					$tmpQuery .= $_POST['opponent'].", ".$_SESSION['playerID'];



				$tmpQuery .= ", 'playerInvited', '".$tmpColor."', NOW(), NOW())";

				mysql_query($tmpQuery);



				/* if email notification is activated... */

				if ($CFG_USEEMAILNOTIFICATION)

				{

					/* if opponent is using email notification... */

					$tmpOpponentEmail = mysql_query("SELECT value FROM " . $CFG_TABLE[preferences] . " WHERE playerID = ".$_POST['opponent']." AND preference = 'emailNotification'");

					if (mysql_num_rows($tmpOpponentEmail) > 0)

					{

						$opponentEmail = mysql_result($tmpOpponentEmail, 0);

						if ($opponentEmail != '')

						{

							/* notify opponent of invitation via email */

							webchessMail('invitation', $opponentEmail, '', $_SESSION['nick'],'');

						}

					}

				}

			}break; // fin del if que controla que no se duplique el mismo desafio.


 //contemplar en la página desafios_pendientes.php
		case 'ResponseToInvite': // en el caso de que proceda del formulario que existe en la página 'desafios_pendientes.php'

			if ($_POST['response'] == 'accepted') // en el caso de que acepte el desafio que tenía pendiente

			{

				/* update game data */
				// de la tabla 'games' deja en blanco los valores fameMessage y messageFrom, para reflejar que ya no está pendiente la respuesta al Desafio.
				$tmpQuery = "UPDATE " . $CFG_TABLE[games] . " SET gameMessage = '', messageFrom = '' WHERE gameID = ".$_POST['gameID'];

				mysql_query($tmpQuery);



				/* setup new board */

				$_SESSION['gameID'] = $_POST['gameID'];

				createNewGame($_POST['gameID']); // crea un nuevo juego, asignando un número de juego correlativo y con los datos de los dos jugadores

				saveGame();

			}

			else

			{



				$tmpQuery = "UPDATE " . $CFG_TABLE[games] . " SET gameMessage = 'inviteDeclined', messageFrom = '".$_POST['messageFrom']."' WHERE gameID = ".$_POST['gameID'];

				mysql_query($tmpQuery);

			}



			break;


 //incluir en desafios_pendientes.php
		case 'WithdrawRequest': // En el caso de que pulse sobre el botón de Abandonar, en el formulario de la página 'desafios_pendientes.php'



			/* get opponent's player ID */

			$tmpOpponentID = mysql_query("SELECT whitePlayer FROM " . $CFG_TABLE[games] . " WHERE gameID = ".$_POST['gameID']);

			if (mysql_num_rows($tmpOpponentID) > 0)

			{

				$opponentID = mysql_result($tmpOpponentID, 0);



				if ($opponentID == $_SESSION['playerID'])

				{

					$tmpOpponentID = mysql_query("SELECT blackPlayer FROM " . $CFG_TABLE[games] . " WHERE gameID = ".$_POST['gameID']);

					$opponentID = mysql_result($tmpOpponentID, 0);

				}



				$tmpQuery = "DELETE FROM " . $CFG_TABLE[games] . " WHERE gameID = ".$_POST['gameID'];

				mysql_query($tmpQuery);



				/* if email notification is activated... */

				if ($CFG_USEEMAILNOTIFICATION)

				{

					/* if opponent is using email notification... */

					$tmpOpponentEmail = mysql_query("SELECT value FROM " . $CFG_TABLE[preferences] . " WHERE playerID = ".$opponentID." AND preference = 'emailNotification'");

					if (mysql_num_rows($tmpOpponentEmail) > 0)

					{

						$opponentEmail = mysql_result($tmpOpponentEmail, 0);

						if ($opponentEmail != '')

						{

							/* notify opponent of invitation via email */

							webchessMail('withdrawal', $opponentEmail, '', $_SESSION['nick'], $_POST['gameID']);

						}

					}

				}

			}

			break;


 //todas
		case 'UpdatePersonalInfo': // En el caso de que pulsemos sobre 'Datos Personales', del menú principal que se encuentra en todas las páginas principales.

			$tmpQuery = "SELECT password FROM " . $CFG_TABLE[players] . " WHERE playerID = ".$_SESSION['playerID'];

			$tmpPassword = mysql_query($tmpQuery);

			$dbPassword = mysql_result($tmpPassword, 0);



			if ($dbPassword != $_POST['pwdOldPassword'])

				$errMsg = "Clave antigua incorrecta!";

			else

			{

				$tmpDoUpdate = true;



				if ($CFG_NICKCHANGEALLOWED)

				{

					$tmpQuery = "SELECT playerID FROM " . $CFG_TABLE[players] . " WHERE nick = '".$_POST['txtNick']."' AND playerID <> ".$_SESSION['playerID'];

					$existingUsers = mysql_query($tmpQuery);



					if (mysql_num_rows($existingUsers) > 0)

					{

						$errMsg = "Este usuario ya existe.";

						$tmpDoUpdate = false;

					}

				}



				if ($tmpDoUpdate)

				{

					/* update DB */

					$tmpQuery = "UPDATE " . $CFG_TABLE[players] . " SET firstName = '".$_POST['txtFirstName']."', lastName = '".$_POST['txtLastName']."', password = '".$_POST['pwdPassword']."'";



					if ($CFG_NICKCHANGEALLOWED && $_POST['txtNick'] != "")

						$tmpQuery .= ", nick = '".$_POST['txtNick']."'";



					$tmpQuery .= " WHERE playerID = ".$_SESSION['playerID'];

					mysql_query($tmpQuery);



					/* update current session */

					$_SESSION['playerName'] = $_POST['txtFirstName']." ".$_POST['txtLastName'];

					$_SESSION['firstName'] = $_POST['txtFirstName'];

					$_SESSION['lastName'] = $_POST['txtLastName'];



					if ($CFG_NICKCHANGEALLOWED && $_POST['txtNick'] != "")

						$_SESSION['nick'] = $_POST['txtNick'];

				}

			}



			break;

//todas

		case 'UpdatePrefs': // En el caso de que pulsemos sobre la opción 'Preferencias' del menú principal que tienen todas las páginas principales

			/* Theme */

			$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = '".$_POST['rdoTheme']."' WHERE playerID = ".$_SESSION['playerID']." AND preference = 'theme'";

			mysql_query($tmpQuery);



			/* History format */

			$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = '".$_POST['rdoHistory']."' WHERE playerID = ".$_SESSION['playerID']." AND preference = 'history'";

			mysql_query($tmpQuery);



			/* History layout */

			$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = '".$_POST['rdoHistorylayout']."' WHERE playerID = ".$_SESSION['playerID']." AND preference = 'historylayout'";

			mysql_query($tmpQuery);



			/* Auto-Reload */

			if (is_numeric($_POST['txtReload']))

			{

				if (intval($_POST['txtReload']) >= $CFG_MINAUTORELOAD)

					$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = ".$_POST['txtReload']." WHERE playerID = ".$_SESSION['playerID']." AND preference = 'autoreload'";

				else

					$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = ".$CFG_MINAUTORELOAD." WHERE playerID = ".$_SESSION['playerID']." AND preference = 'autoreload'";



				mysql_query($tmpQuery);

			}



			/* Email Notification */

			if ($CFG_USEEMAILNOTIFICATION)

			{

				$tmpQuery = "UPDATE " . $CFG_TABLE[preferences] . " SET value = '".$_POST['txtEmailNotification']."' WHERE playerID = ".$_SESSION['playerID']." AND preference = 'emailnotification'";

				mysql_query($tmpQuery);

			}



			/* update current session */ //

			$_SESSION['pref_history'] = $_POST['rdoHistory'];

			$_SESSION['pref_historylayout'] = $_POST['rdoHistorylayout'];

			$_SESSION['pref_theme'] =  $_POST['rdoTheme'];



			if (is_numeric($_POST['txtReload']))

			{

				if (intval($_POST['txtReload']) >= $CFG_MINAUTORELOAD)

				{

					$_SESSION['pref_autoreload'] = intval($_POST['txtReload']);

				}

				else

					$_SESSION['pref_autoreload'] = $CFG_MINAUTORELOAD;

			} else

				$_SESSION['pref_autoreload'] = $CFG_MINAUTORELOAD;



			if ($CFG_USEEMAILNOTIFICATION)

				$_SESSION['pref_emailnotification'] = $_POST['txtEmailNotification'];

			break;


//poner en preferencias.php
		case 'TestEmail': // En el caso de que pulsemos sobre el botón de 'Probar Email' que se encuentra en el formulario de la página 'preferencias.php'
			              // ... este botón no se visualizará si se encuentra el campo Dirección de Email vacío (del formulario mencionado).

			if ($CFG_USEEMAILNOTIFICATION)

				webchessMail('test', $_SESSION['pref_emailnotification'], '', '', '');

			break;

//incluir en Mensajes.php
        case 'HideMessage': // en el caso de que pulsemos sobre 'Leído' del formulario que se encuentra en viewmessage.php

                        $tmpQuery = "UPDATE " . $CFG_TABLE[communication] . " SET ack = 1 WHERE commID = " . $_POST['messageID'];

                        mysql_query($tmpQuery);

                        break;
	} // fin del switich principal


	/* check session status */

	//require 'sessioncheck.php'; //



	/* set default playing mode to different PCs (as opposed to both players sharing a PC) */

	//$_SESSION['isSharedPC'] = false;

?>